#include "hash.hpp"

namespace ns_unordered_set
{
    using namespace link_hash;

    template <class K>
    class unordered_set
    {
    public:
        struct SetOfT
        {
            const K& operator()(const K& k)
            {
                return k;
            }
        };

        typedef typename link_hash::HashTable<K, K, SetOfT>::iterator iterator; 

        std::pair<iterator, bool> insert(const K& key)
        {
            return _ht.insert(key);
        }

        void Print()
        {
            _ht.Print();
        }
    private:
        HashTable<K, K, SetOfT> _ht;
    };

    void Test()
    {
        unordered_set<int> Myset;
        Myset.insert(1);
        Myset.insert(13);
        Myset.insert(12);
        Myset.insert(11);
        Myset.insert(15);
        Myset.Print();
    }
}